package com.ssy.lingxi.platform.template.service.entity.adorn;

import com.ssy.lingxi.platform.template.service.handler.convert.JpaJsonToMemberBOConverter;
import com.ssy.lingxi.platform.template.service.handler.convert.JpaJsonToSelfMemberBOConverter;
import com.ssy.lingxi.platform.template.service.model.bo.MemberBO;
import com.ssy.lingxi.platform.template.service.model.bo.SelfMemberBO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 页面模板 - DO
 * @author fhj
 * @date 2020/07/30
 * @version 2.0.0
 */
@Data
@Entity
@Table(schema = "public", name = "pt_page_template")
public class PageTemplate {
    /**
     * 模板ID
     */
    @Id
    private Long id;

    /**
     * 模板名称
     */
    @Column(columnDefinition = "varchar(20)")
    private String templateName;

    /**
     * 适用环境: 0.所有 1.WEB 2.H5 3.小程序 4.APP
     */
    @Column(columnDefinition = "int2")
    private Integer environment;

    /**
     * 模板描述
     */
    @Column(columnDefinition = "varchar(100)")
    private String templateDescribe;

    /**
     * 封面图片
     */
    @Column(columnDefinition = "varchar(500)")
    private String templatePicUrl;

    /**
     * 前端关联模板文件名称
     */
    @Column(columnDefinition = "varchar(100)")
    private String fileName;

    /**
     * 模板使用状态: 0.未使用 1.已使用
     */
    @Column(columnDefinition = "int2")
    private Integer status = 0;

    /**
     * 是否允许使用: 0.否 1.是
     */
    @Column(columnDefinition = "int2")
    private Integer allow = 0;

    /**
     * 模板类型: 0.平台首页模板 1.企业商城模板 2.会员店铺模板 3.商品描述模板 4.渠道商城模板 5.活动模板 6.自营商城模板
     */
    @Column(columnDefinition = "int2")
    private Integer type;

    /**
     * 是否上架: 0.未上架 1.已上架
     */
    @Column(columnDefinition = "int2")
    private Integer shelf = 0;

    /**
     * 创建时间
     */
    @Column(columnDefinition = "int8")
    private Long createTime = System.currentTimeMillis();

    /**
     * 站点ID
     */
    @Column(columnDefinition = "int8")
    private Long siteId;

    /**
     * 商城ID
     */
    @Column(columnDefinition = "int8")
    private Long shopId;

    /**
     * 站点名称
     */
    @Column(columnDefinition = "varchar(20)")
    private String siteName;

    /**
     * 商城名称
     */
    @Column(columnDefinition = "varchar(20)")
    private String shopName;

    /**
     * 商城类型
     */
    @Column(columnDefinition = "int2")
    private Integer shopType;

    /**
     * 商城属性
     */
    @Column(columnDefinition = "int2")
    private Integer property;

    /**
     * 是否启用商城MRO筛选模: 0.否 1.是
     */
    @Column(columnDefinition = "int2")
    private Integer openMro = 0;

    /**
     * 店铺模板使用人
     */
    @Convert(converter = JpaJsonToMemberBOConverter.class)
    @Column(columnDefinition = "jsonb")
    private List<MemberBO> useShopTemplate = new ArrayList<>();

    /**
     * 渠道模板使用人
     */
    @Convert(converter = JpaJsonToMemberBOConverter.class)
    @Column(columnDefinition = "jsonb")
    private List<MemberBO> useChannelTemplate = new ArrayList<>();

    /**
     * 自营模板使用人
     */
    @Convert(converter = JpaJsonToSelfMemberBOConverter.class)
    @Column(columnDefinition = "jsonb")
    private List<SelfMemberBO> useSelfTemplate = new ArrayList<>();
}
